using MinimalistFoodStreet.BackEnd.Infrastructure.Attributes;
using MinimalistFoodStreet.BackEnd.Infrastructure.Dtos.Request.Tables;
using MinimalistFoodStreet.BackEnd.Infrastructure.Dtos.Response;

namespace MinimalistFoodStreet.BackEnd.Server.IServer.Tables
{
    [ProvideClassOrInterface]
    public interface IOrdersServer
    {
        Task<ResponseApiDto> AddAsync(RequestCreateOrdersDto dto, int bid);
        Task<ResponseApiDto> DetailAsync(int id);
        Task<ResponseApiDto> TakeOrder(int id,int sid);
        Task<ResponseApiDto> RefuseTakeOrder(int id,int sid);
        Task<ResponseApiDto> Shipment(int id, int sid);
        Task<ResponseApiDto> SupplierCancelOrder(int id,int sid);
        Task<ResponseApiDto> BusinessCancelOrder(int id,int sid);
        Task<ResponseApiDto> AcceptOrder(int id, List<int> odids, List<int> counts, int bid);
        Task<ResponseApiDto> RefuseAcceptOrder(int id,int bid);
        Task<ResponseApiDto> PaginationAsync(int page, int limit, string? key, int? bid, int? sid, List<int>? statuss);
        Task<ResponseApiDto> GetStatistics();
    }
}